import { getOrderListAPI } from '../../apis/order'
import {
  orderStatus,
  deliveryStatus,
  payStatus,
  receiptStatus,
} from '../../../constant/constant'

Component({
  options: {
    styleIsolation: 'shared',
  },
  // 组件外部数据
  properties: {
    dataType: {
      type: String,
      value: 'all',
    },
  },
  // 组件内部数据
  data: {
    list: [],
    isFirstLoad: true,
    orderStatus,
    deliveryStatus,
    payStatus,
    receiptStatus,
    page: 1,
    isLoading: false,
    isFinished: false,
  },
  // 生命周期
  lifetimes: {
    // 组件挂载完成
    attached() {
      this.getOrderList()
    },
  },
  methods: {
    // 获取订单列表
    async getOrderList() {
      const { list, isFinished, page } = this.data
      // 如果分页结束，退出函数
      if (isFinished) return
      // 发送请求
      const res = await getOrderListAPI({
        dataType: this.properties.dataType,
        page: page,
      })
      // 提取列表数据
      const { data: newList, current_page, last_page } = res.data.list
      console.log('🟢 newList', { newList, current_page, last_page })
      // 每个列表项添加 商品总数量
      newList.forEach((item) => {
        item.total_num = item.goods.reduce((sum, v) => sum + v.total_num, 0)
      })
      // 保存列表数据
      this.setData({
        list: [...list, ...newList], // 列表数据
        isFirstLoad: false,
      })
      // 判断是否分页结束
      if (current_page < last_page) {
        this.setData({
          page: current_page + 1,
        })
      } else {
        this.setData({
          isFinished: true,
        })
      }
    },
  },
})
